Managers need to be able to model the expected costs and benefits of the product line approach to supplement their
arguments for using this approach. The Structure, Intuitive Model of Product Line Economics (SIMPLE) uses an expression
like this:
A basic SIMPLE model uses 4 cost functions:
1. Corg() is a function that, given the relevant parameters, returns how much it costs an
organization to adopt the product line approach for its products. Such costs can include
reorganization, process improvement, training, and whatever other organizational
remedies are necessary.
2. Ccab() is a function that, given the relevant parameters, returns how much it costs to
develop a core asset base suited to satisfy a particular scope. Ccab takes into account the
costs of performing a commonality/variability analysis; defining the product line’s scope
[Clements 04]; designing and then evaluating a generic (as opposed to one-off) software
architecture; and developing the software so designed. Ccab also includes building the
production plan, establishing the development environment, and producing a testing
architecture and other artifacts that are reusable across the family. Ccab may be invoked
to tell us the cost of developing a core asset base where none currently exists or the cost
of deriving a desired core asset base from one or more bases already in place. Note that
the core asset base can (and should) also include non-software assets such as plans,
schedules, budgets, the scope definition, and various kinds of documentation. It also
includes the artifacts that tell you how to produce products from core assets; an example
of such an artifact is a production plan.
3. Cunique() is a function that, given the relevant parameters, returns how much it costs to
develop the unique parts (both software and non-software) of a product that are not
based on assets in the core asset base. The result might be a complete product (i.e., one
that is not a member of a product line) or the unique part of a product whose remainder
is built atop the core asset base of a product line.
4. Creuse() is a function that, given the relevant parameters, returns how much it costs to
build a product reusing core assets from a core asset base. Creuse includes the cost of
locating a core asset, checking it out of the repository, tailoring it for use in the intended
application, and performing the extra tests associated with reusing core assets.
SIMPLE also includes a Benefits function that returns the value of the benefits realized by using the product line
approach.
|